Observer Design Pattern Code_New
import java.util.*; interface subject{ public void addObserver(Observer ob); public void removeObserver(Observer ob); public void notifyObservers(); } class publisher implements subject{ private ArrayListobs; String status; public publisher(){ obs = new ArrayList (); status = "unknown"; } public void addObserver(Observer ob){ obs.add(ob); } public void removeObserver(Observer ob){ obs.remove(ob); } public void notifyObservers(){ for(Observer obj: obs){ obj.updateStatus(status); } } public void updateStatus(String status){ this.status = status; notifyObservers(); } } interface Observer{ public void updateStatus(String status); public void showStatus(); } class observers implements Observer{ private String status; public void updateStatus(String status){ this.status = status; } public void showStatus(){ System.out.println("Status of Publisher is: "+status); } } class ObserverPattern{ public static void main(String[] arggg){ publisher p = new publisher(); Observer o1,o2,o3,o4; o1 = new observers(); o2 = new observers(); o3 = new observers(); o4 = new observers(); p.addObserver(o1); p.addObserver(o3); p.addObserver(o4); p.updateStatus("Available"); o1.showStatus(); o2.showStatus(); o3.showStatus(); o4.showStatus(); } }